﻿using Godot;
using MonsterDiKe.player.script;

namespace MonsterDiKe.common;

/**
 * 状态机-基类
 */
public partial class BaseState : Node
{
    public static StateMachine StateMachine;

    /**
     * 初始化操作
     */
    public virtual void Init()
    {
        // 由派生类重写
    }

    /**
     * 入场事件
     */
    public virtual void Enter()
    {
        // 由派生类重写
    }

    /**
     * 退出事件
     */
    public virtual void Exit()
    {
        // 由派生类重写
    }

    /**
     * 进程事件
     */
    public virtual BaseState Process(double delta)
    {
        // 由派生类重写
        return null;
    }

    /**
     * 物理进程事件
     */
    public virtual BaseState PhysicsProcess(double delta)
    {
        // 由派生类重写
        return null;
    }

    /**
     * 输入事件
     */
    public virtual BaseState HandleInput(InputEvent @event)
    {
        // 由派生类重写
        return null;
    }
    
}